﻿using System.ComponentModel;
using System.Windows;
using System.Windows.Data;

namespace Sinacor.Infra.UI.Controls.SmartClient.DataGrid
{
    public interface IDataGridColumn : INotifyPropertyChanged
    {
        /// <summary>
        /// Nome da coluna
        /// </summary>
        string Name { get; set; }

        /// <summary>
        /// DataGrid para o qual a coluna pertence
        /// </summary>
        SinacorDataGrid DataGrid { get; }

        /// <summary>
        /// Ordem que a coluna foi ordenada
        /// </summary>
        int SortIndex { get; }

        /// <summary>
        /// Alinhamento horizontal do conteúdo da célula
        /// </summary>
        HorizontalAlignment HorizontalCellAlignment { get; set; }

        /// <summary>
        /// Alinhamento vertical do conteúdo da célula
        /// </summary>
        VerticalAlignment VerticalCellAlignment { get; set; }

        /// <summary>
        /// Indica se o usuário pode alterar a visibilidade da coluna
        /// </summary>
        bool CanUserChangeVisibility { get; set; }

        /// <summary>
        /// Indica se a coluna permite ser exportada para Excel
        /// </summary>
        bool CanUserExportExcel { get; set; }

        /// <summary>
        /// Binding do valor a ser exportado para o Excel
        /// </summary>
        BindingBase ExcelContentBinding { get; set; }

		void TriggerPropertyChanged(string propertyName);
    }
}
